/**
 * org.assess.core.dao.BaseDAOImpl
 */
package org.assess.core.dao;

import org.springframework.orm.ibatis.SqlMapClientTemplate;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

/**
 * @description 基础DAO实现类
 * @author XiaLongxiang
 * @createtime 2012-4-16 上午10:09:59
 */
public class BaseDAOImpl<T> extends SqlMapClientDaoSupport {
    /** SQL执行API */
    protected SqlMapClientTemplate sqlClient;
    
    /**
     * 默认构造方法
     */
    protected BaseDAOImpl() {
        sqlClient = getSqlMapClientTemplate();
    }
    
    /**
     * 插入对象
     * @param entry - 需要插入的对象，该对象必须继承自BaseEntry
     * @return
     */
    public boolean insert(T entry) {
        // 获取需要执行插入操作的SQL别名
        String sqlName = "insert" + entry.getClass().getSimpleName();
        sqlClient.insert(sqlName, entry);
        return true;
    }
    
    /**
     * 更新操作
     * @param entry - 需要更新的对象，该对象必须继承自BaseEntry
     * @return
     */
    public boolean update(T entry) {
        // 获取需要执行更新操作的SQL别名
        String sqlName = "update" + entry.getClass().getSimpleName();
        int count = sqlClient.update(sqlName, entry);
        return count > 0;
    }
}
